<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        /**
         * 回调函数
         */ 
        // function f1(){
        //     console.log('嘿嘿嘿嘿。。。。')
        // }

        // f1()

        // 点击浏览器窗口时触发
        // window.onclick = f1 // 回调函数，不能加小括号


        function f2(a){
            // console.log(a)
            a()
        }

        // f2(5)
        // f2(f1)

        /**
         * 匿名函数
         */ 
        // window.onclick = function (){ // 匿名函数/回调函数
        //     console.log('哈哈哈哈。。。。')
        // }


        /**
         * 箭头函数
         * 语法：参数 => 表达式
         */ 
        // 示例1
        // function a(x){
        //     return x*2
        // }

        // var a = 5
        // var a = function(x){
        //     return x*2
        // }

        // var a = x => x*2 // 更简洁

        // console.log(a(7))


        // 示例2：如果函数没有参数，或有2个及以上参数，则必须使用小括号括起来！
        // var a = function(x, y){
        //     return x+y
        // }
        // var a = (x,y) => x+y

        // var a = function() {
        //     return 5
        // }
        // var a = () => 5


        // 示例3：如果函数体多于一行，则必须使用大括号括起来！
        // var a = function(x) {
        //     x = x*2 + 1
        //     var sum = x  + 5
        //     return sum
        // }

        // var a = x => {
        //     x = x*2 + 1
        //     var sum = x  + 5
        //     return sum
        // }

        // 示例4
        // window.onclick = () => {
        //     console.log('嘻嘻。。。。')
        // }

        // 示例5
        var names = ['张三', '李四', '王五', '赵六']

        // names.forEach(function(item, index){
        //     console.log(index, item)
        // })

        // names.forEach((item, index) => {
        //     console.log(index, item)
        // })

        names.forEach(item => {
            console.log(item)
        })
        


    </script>
</body>
</html>